package cn.t.request.api;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PushReconToNidecReq {
    /**
     * 对账单号
     */
    @JsonProperty("OrderNo")
    private String reconSn;
    /**
     * 对账周期开始
     */
    @JsonProperty("s_date")
    private String startDate;
    /**
     * 对账周期截止
     */
    @JsonProperty("e_date")
    private String endDate;
    /**
     * 对账明细列表
     */
    private List<Item> items = Collections.emptyList();

    @Data
    public static class Item {
        /**
         * 订单SN
         */
        @JsonProperty("ddsn")
        private String orderSn;
        /**
         * 关联工单号
         */
        @JsonProperty("namsgd")
        private String workOrderSn;
        /**
         * 下单时间(领用时间)
         */
        @JsonProperty("lyrq")
        private String orderTime;
        /**
         * 设备名称
         */
        @JsonProperty("sbmc")
        private String deviceName;
        /**
         * 设备编号
         */
        @JsonProperty("sbbh")
        private Long deviceId;
        /**
         * 领用人姓名
         */
        @JsonProperty("lyrxm")
        private String username;
        /**
         * 领用人工号
         */
        @JsonProperty("lyrgh")
        private String emp;
        /**
         * 商品名称
         */
        @JsonProperty("spmc")
        private String skuName;
        /**
         * SKU
         */
        @JsonProperty("sku")
        private String skuCode;
        /**
         * 客户物料号
         */
        @JsonProperty("namswlh")
        private String customerSkuCode;
        /**
         * 工单SKU组合
         */
        @JsonProperty("gdhskuzh")
        private String workOrderSkuCode;
        /**
         * 工单申请数量
         */
        @JsonProperty("gdsqsl")
        private Integer requestQty;
        /**
         * 单价（未税）
         */
        @JsonProperty("djws")
        private BigDecimal unitPrice;
        /**
         * 实际结算数量
         */
        @JsonProperty("sjjssl")
        private Integer actualQty;
        /**
         * 实际结算金额（未税）
         */
        @JsonProperty("sjjsjews")
        private BigDecimal amount;
        /**
         * 是否是线下单 0：非线下单 1：线下单
         */
        @JsonProperty("sfxxd")
        private Integer isOffline;
        /**
         * 备注
         */
        @JsonProperty("bz")
        private String remark;
    }
}
